const Joi = require('joi')

function validateRequest(schema) {
  return (req, res, next) => {
    const { error } = schema.validate(req.body)
    if (error) {
      return res.status(400).json({
        success: false,
        code: 400,
        message: '参数验证失败',
        data: error.details[0].message
      })
    }
    next()
  }
}

// 常用验证规则
const commonSchemas = {
  id: Joi.number().integer().positive().required(),
  page: Joi.number().integer().min(1).default(1),
  limit: Joi.number().integer().min(1).max(100).default(10),
  name: Joi.string().min(1).max(255).required(),
  email: Joi.string().email().required(),
  phone: Joi.string().pattern(/^1[3-9]\d{9}$/).required()
}

module.exports = {
  validateRequest,
  commonSchemas,
  Joi
}
